﻿using Autofac.Extras.DynamicProxy;
using MDT.LifeSewagePlatform.Conmmon;
using MDT.LifeSewagePlatform.Entity;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace MDT.LifeSewagePlatform.InterfaceService
{
    [Intercept(typeof(CustomAutofacAop))]
    public interface IDrugService
    {
        public Task<DataMessage> GetPie(PipeLineParameter Params, CurrentUserInfo currentUserInfo);
        
        /// <summary>
        /// 统计折算总量折线数据
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public  Task<DataMessage> GetLineByMonth(LineParameter Params, CurrentUserInfo currentUserInfo);
        

        public  Task<DataMessage> GetLineByYear(LineParameter Params, CurrentUserInfo currentUserInfo);
       

        public Task<DataMessage> GetLineByDrugMonth(LineParameter Params, CurrentUserInfo currentUserInfo);
       

        public Task<DataMessage> GetLineByDrugYear(LineParameter Params, CurrentUserInfo currentUserInfo);
        


        /// <summary>
        /// 查询右下角的图表
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Task<BaseMessage> GetDrugs(DrugParameter Params, CurrentUserInfo currentUserInfo);


        public  Task<BaseMessage> GetDrugDetals(DrugParameter Params, CurrentUserInfo currentUserInfo);


        /// <summary>
        /// 统计各个区域的毒品的折算总量根据时间历史值得话就不用传时间
        /// </summary>
        /// <returns></returns>
        public  Task<BaseMessage> GetHistoryTop(TopParameter Params, CurrentUserInfo currentUserInfo);
        

        public  Task<BaseMessage> GetRankTotal(PieParameter Params, CurrentUserInfo currentUserInfo);
        
        /// <summary>
        /// 消耗排行
        /// </summary>
        /// <returns></returns>
        public  Task<BaseMessage> GetRank(PieParameter Params, CurrentUserInfo currentUserInfo);
       

        public Task<BaseMessage> GetSynthesize(SynthesizeParameter Params, CurrentUserInfo currentUserInfo);
        
        public Task<BaseMessage> GetChangeScpe(PieParameter Params, CurrentUserInfo currentUserInfo);

        public  Task<BaseMessage> GetYears(int CompanyID);
       

        /// <summary>
        /// 获取季度 打印报告的时候
        /// </summary>
        /// <param name="Year"></param>
        /// <param name="CompanyID"></param>
        /// <param name="monthOrQuarter"></param>
        /// <returns></returns>
        public Task<BaseMessage> GetReportTerm(int Year, int CompanyID, int monthOrQuarter = -1);
    

        public  Task<DataMessage> GetReport(ReportParameter Params);

        public  Task<BaseMessage> GetAreas(int cityID, int companyID,int currentArea,int roleId);
     


        public Task<BaseMessage> GetDrugDays(DrugDayParameter Params, CurrentUserInfo currentUserInfo);
        

        public Task<BaseMessage> GetDate(DateParameter Params);
    }
}
